package cn.siriusbot.siriuspro.uitls;


import java.util.ArrayList;
import java.util.List;


public class PageUtil {

    /**
     * 对对象数组分页
     *
     * @param list 对象列表
     * @param page 第几页，从1开始
     * @param size 每页大小
     * @return 分页后的对象列表
     */
    public static <T> List<T> pageList(List<T> list, int page, int size) {
        List<T> result = new ArrayList<>();
        if (list == null || list.size() == 0) {
            return result;
        }
        if (size < 1) size = 1;
        if (page < 1) page = 1;
        int pageMax = getPageMax(list, size);
        if (page > pageMax) page = pageMax;
        int start = (page - 1) * size;
        for (int i = 0; i < size; i++) {
            int index = start + i;
            if (index >= list.size()) {
                break;
            }
            T t = list.get(index);
            result.add(t);
        }
        return result;
    }

    /**
     * 获取列表页数
     *
     * @param list 对象列表
     * @param size 每页大小
     * @return 页数
     */
    public static <T> int getPageMax(List<T> list, int size) {
        int pageSize = list.size() / size;
        if (list.size() % size != 0) {
            pageSize += 1;
        }
        return pageSize;
    }
}
